import cv2
import os

# 输入视频路径
video_path = 'video_data/科目2.mp4'
# 输出文件夹路径
output_folder = 'output_frames'
# 每隔多少帧保存一帧
frame_interval = 100

# 创建输出文件夹
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 打开视频文件
cap = cv2.VideoCapture(video_path)

# 检查视频是否成功打开
if not cap.isOpened():
    print("无法打开视频文件！")
    exit()

# 初始化帧计数器
frame_count = 0
saved_frame_count = 0

# 逐帧读取视频
while True:
    ret, frame = cap.read()
    if not ret:
        break  # 如果读取失败，退出循环

    # 每隔 frame_interval 帧保存一帧
    if frame_count % frame_interval == 0:
        # 保存帧到文件
        frame_name = os.path.join(output_folder, f"frame_{saved_frame_count:04d}.jpg")
        cv2.imwrite(frame_name, frame)
        print(f"保存帧: {frame_name}")
        saved_frame_count += 1

    # 更新帧计数器
    frame_count += 1

# 释放视频对象
cap.release()
print(f"视频处理完成，共保存 {saved_frame_count} 帧。")